package com.example.touch_event

import android.os.Bundle
import android.util.Log
import android.view.MotionEvent
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity


/**
 一.事件分发机制 activity---》viewGroup---》 view：
 dispatchTouchEvent():分发
    super：继续向下分发
    true：终止
    false：终止，交给上一级消费
 onInterceptorTouchEvent():拦截 只有viewGroup有拦截
    super/false：不拦截
    true：拦截，自己消费
 onTouchEvent():消费
    super/false：不消费，传递给上一级
    true：自己消费

 思考问题：
 down事件在viewGroup消费，move/up事件分发过程：move/up只走activity和viewGroup
 down事件在activity消费，move/up事件分发过程：move/up只走activity分发和消费

 二.滑动冲突如何处理
 1.内部拦截法
 2.外部拦截法


 三.举例情况，回答问题


 */
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_main)

        val density2 = resources.displayMetrics.density //获得当前手机dpi/160的值
        Log.d("TAG", "mei使用今日头条density: $density2")
        //设计稿 411dp 731dp
        //设备 420dpi  1080px*2400px
        //未使用今日头条，系统density = 420/160 = 2.625
        //使用今日头条   要修改的density = 1080/411=2.6277373

    }

    override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
        if(ev?.action == MotionEvent.ACTION_DOWN){
            Log.d("TOUCH", "111MainActivity dispatchTouchEvent分发按下: ")
        }else{
            Log.d("TOUCH", "111MainActivity dispatchTouchEvent分发MOVE或UP: ")
        }
        return super.dispatchTouchEvent(ev)
    }

    override fun onTouchEvent(event: MotionEvent?): Boolean {
        if(event?.action == MotionEvent.ACTION_DOWN){
            Log.d("TOUCH", "777MainActivity onTouchEvent消费按下: ")
        }else{
            Log.d("TOUCH", "777MainActivity onTouchEvent消费MOVE或UP: ")
        }
        return true
    }
}